<?php namespace Common\Model;
use Hdphp\Model\Model;
//后台Link模型
class Link extends Model{
	//指定表名
	protected $table = 'link';
	//模型验证
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
		array('lname','required','名称不能为空',3,3),
		array('url','required','url地址不能为空',3,3),		
	); 
	//自动完成
	protected $auto = array(
		//array(表单字段名,处理方法,方法类型,验证条件,处理时间) 
		array('addtime','time','function',3,1),  	//上传时间
		array('logo','getLogo','method',3,3)
	);
	
	//设置处理logo图模型方法		
	public function getLogo(){
		//接收编辑页面隐藏域的旧图片的值(前提用户在添加链接时上传了图片)
		$oldImg = q('post.logo');
		//若不上传图片会报错 Array([error] => 4)		目的：用户可选上传图片或选不上传图片
		if($_FILES['logo']['error'] == 4){  //$_FILES超全局数组	
			//如果隐藏域有旧图片地址那么就是修改   用户修改未上传图片
			if($oldImg){
				return $oldImg;
			}	
			//此处返回必须为空，不能是true或其他
			return '';
		}
		//设置上传类型
		$files = Upload::type('jpg,jpeg,png')->make();
		if($files){
			//如果用户在添加文章时添加了图片	若用户添加文章时没上传图片，则不执行这行代码
			if($oldImg){
				//删除原来上传的缩略图
				unlink($oldImg);
				//删除原图
				$oriOldImg  = str_replace('_logo','',$oldImg);
				unlink($oriOldImg);
			}
			//缩略
			$newPath = str_replace('.' . $files[0]['ext'], '_logo.' . $files[0]['ext'], $files[0]['path']);
            //缩略，返回缩略图的地址
            $thumbPath = Image::thumb($files[0]['path'],$newPath,200,200,2);
			//存到数据库
            return $thumbPath;
		}	
		//如果上传失败，把上传错误压入到当前模型的错误属性，这样外面的控制器就可以用getError来调取了
		$this->error = Upload::getError();	
	}
	
	//添加
	public function store(){
		if(!$this->create()) return false;
		$this->add();
		return true;
	}
	
	//编辑
	public function edit(){
		if(!$this->create()) return false;
		$this->save();
		return true;
	}
	

}
	